Access control is frequently implemented to control the access of users to resources and/or to make decisions about denying or granting access to those resources. In the context of physical access control, these resources are typically rooms or, more generally, restricted areas guarded by entrances or doors. However, instead of physical spaces, the spaces could be logical spaces guarded by logical entry points.
The description below refers to the use of intelligent cards, such as smart cards, in connection with the control of access to resources. However, it should be understood that the present invention is applicable to any user carried device that can interface with other devices, such as readers and a central authority, so as to allow the user carrying the user carried device to gain access to a resource.
Intelligent cards are increasingly becoming popular for storing user credentials and enforcing access control. The implementation of access control has traditionally relied on the use of an identity card and a card reader. The identity card verifies the identity of the card holder, and the card reader reads information stored on the identity card and determines whether the card holder has a requested privilege, such as access to a controlled area. A PIN (personal identification number) can additionally be provided via a keypad to further add an additional level of authentication security. Biometrics can also be used to increase authentication security.
Intelligent cards, however, provide an enhancement over traditional cards for a variety of reasons. They support a framework to write/update user specific information in a secure manner. Security enhancement features such as biometrics can be implemented on the intelligent cards to build an extremely secure environment for the authorization of users and the validation of user privileges. Intelligent cards address a growing need to store, in a single device, more access rights and privileges to a wide variety of diverse resources. Multiple applications can use the information stored on intelligent cards to authenticate the user for access to a variety of physical and logical resources. And, intelligent cards can be used for many purposes such as paying fees, certifying transactions, or tracking the user's activities for audit purposes.
At a physical level, intelligent cards can include technologies such as magnetic/wiegand stripes or RF chips to read/write information, and possibly chips to perform a limited amount of computation. User credentials that can be securely written to these intelligent cards could include the user ID, a PIN, biometric information, or a combination of these identifying data.
One of the important features of intelligent cards is the capability of using cryptographic techniques to protect information. Intelligent cards support symmetric cryptographic algorithms, which insure substantial protection as well as efficient processing time. Intelligent cards increasingly support public key infrastructure (PKI) privileges using asymmetric cryptographic algorithms for storing certificates, which provide a mechanism for data integrity and validity.
Moreover, with a growing demand for scalability of access control to multiple users and resources, there has been a parallel trend towards decentralization. In traditional access control, resources work in a pull based mechanism where readers communicate to a central server to process user credentials online, and where the central server communicates back to the readers based on the security policies applicable at that time.
Changes to the security policies and the user privileges are maintained at the central server such that they are available immediately in the entire system. For example, when an employee leaves the organization, all privileges applicable to that employee can be immediately revoked.
While this approach seems very suitable for enforcing access policies online, it may not scale well to large facilities requiring vast numbers of intelligent cards and readers. As the number and categories of resources and users increase, the amount of load on a central server increases, communication costs rise, and there is a natural increase in latency for responding to access requests.
By contrast, a decentralized solution would enable the local resources to make decisions without connecting to a server online and is emerging as an attractive solution for several applications such as building control.
One approach for decentralization that is used in practice is a push based scheme, wherein resources work in an offline mode, and the latest information and access control policies are pushed down to the local resources periodically from a central server. During an access request by a user, a local resource does not connect to the central server, and makes its own decision based on the latest information that it stores. This method avoids online communication to the server, and thereby reduces the latency for granting access control.
However, the information stored by the local resources may not be the latest available information. Furthermore, a communication link between each local resource and the central server is still required, which means that this solution is not a totally decentralized solution. For example, in the area of access control for buildings, the push based scheme cannot be applied when it is necessary to install disconnected readers in remote areas that may not all be wired to the central server.
An alternative approach is the use of the intelligent cards to store user credentials as well as the user's associated privileges for multiple applications. In such a setting, it is important to address the issue of how to securely store these user credentials and privileges on intelligent cards, how these user credentials and privileges are to expire in a time bound manner, and how they can be revoked in real-time by the proper authority. Furthermore, different resource categories and corresponding privileges must be accommodated in a single framework. For example, a local resource such as a file could provide no access, read only access, write only access, or a combination of read and write access while a door in a physical campus could provide a binary access.
An important approach for secure user authentication is the use of the public key infrastructure (PKI) framework based on asymmetric key cryptography. In this framework, the user is issued a certificate that is signed by a central authority. This issuance uses a secret private key known only to the central authority. The information in the certificate, however, can be validated by third parties using a public key which is published by the central authority. The basic idea is that the certificate cannot be generated without knowing the private key; but can be validated by anyone using the public key. This arrangement guarantees data integrity and protects the information in the certificate against tampering.
In the context of intelligent cards, a certificate can be generated for each user by the central authority and be stored on the intelligent cards. The certificate can carry authentication credentials such as a user ID and could involve additional credentials such as biometric information. The certificate can also contain privileges defining a user's access to local resources. The reader at the local resource level could validate the certificate using the public key of the central authority for authentication and verify the user's privileges to the requested resource.
In the context of intelligent cards, a rough schematic of this scheme is shown in FIG. 1. A central authority 10 downloads the certificates to one or more terminals 12 that write information including the certificates on the intelligent cards 14. The user presents the intelligent card containing the certificate to individual readers 16 in order to obtain permission to access the corresponding local resource.
Typically, certificates are time bounded. For example, the certificates could potentially be valid for a year. Updating certificates after their expiration does not pose a problem. However, there is the issue of revoking a certificate if some security reason arises before its normal expiration. A traditional revocation method uses certification revocation lists that list those certificates that are revoked and are no longer valid. These certification revocation lists can either be maintained by the central server it the local readers operate in a pull based approach; or, the certification revocation lists could be periodically pushed to the individual readers in a push based approach. However, the certification revocation lists may get huge as the number of revoked certificates increases, and may not scale well in large applications involving a large number of users.
Lately, there have been suggested some optimized solutions where certificate revocation is performed using one way hash functions. In this scenario, the amount of information needed to revoke a certificate is as low as 20 bytes per certificate. This hash based approach provides an efficient technique in situations where the number of certificates involved is on the order of millions. This technique also provides an elegant solution to address revocation of certificates even when the local readers are completely disconnected. In such scenarios, intelligent cards are required to update the information (20 byte information) at the end of each time interval (possibly everyday) for renewing the validity of the certificate.
Using the above described PKI approaches, it seems possible to have the certificates stored on intelligent cards generated once and updated periodically, so that the problem of revocation can be addressed (at least on a one day granularity) even in a completely decentralized setting. This method seems appropriate where the certificate information is not likely to change often, such as membership to a role in a particular organization.
However, this approach also does not scale well in the context of granting finely (as opposed to coarsely) defined privileges with respect to a diverse set of resources. While it is possible to have these finely defined privileges inside the certificate, changes in the resources and associated privileges would involve regeneration of the whole certificate.
Another option would be to have multiple certificates for each resource grant; but relying on multiple certificates could pose a serious space problem for intelligent cards. In order to tackle this problem, a symmetric based scheme to store user privileges specific to different resource classes on the intelligent card is proposed herein. This symmetric based scheme is explained in detail below in the detailed description section.
Another problem with the PKI approach is that it does not provide a mechanism for individual resources to write information on intelligent cards in a secure manner. For example, in a physical access control scenario, it may be useful for resources to write specific information on an intelligent card in a secure manner so that the information could be used by other resources in order to enforce certain policies. Using the PKI approach, this information writing would involve having a private/public key at each resource level, which would give rise to key management issues, especially if the number of resources grows large. The symmetric key approach explained in detail below in the detailed description section provides an efficient manner to share data between different classes of resources, and thereby enable state dependent access control policies.